"""
魔术方法(magic methods 也叫特殊方法),
一、概念
    是指使用双下划线__开头和结尾的方法, 例如:
        __init__()
        __new__(),当对象创建的时候
        __str__()，打印对象的时候
        __del__()，对象从内存中销毁
        __call__()，
        ....

二、执行
    魔术方法不是由程序中手动调用，而是在特殊的情况，由python解释器自动调用。

三、自己重写魔术方法

"""


# 自定义一个str,长度为王
class Mystr:
    def __init__(self, content):
        self.content = content

    def __str__(self):
        print('mysttr')
        return 'nihao'

    #
    def __lt__(self, other):
        print('lt')
        # return len(self.content) < len(other.content)
        # return self.content[0] < other.content[0]
        return False

    def __gt__(self, other):
        print('gt')
        return len(self.content) > len(other.content)

    def __ge__(self, other):
        print('>=')

    def __le__(self, other):
        print('le')

    def __len__(self):
        return len(self.content)


m = Mystr('j99o')
m1 = Mystr('bjfgsgfs ')
m2 = Mystr('bjsgdfsd99o')

print(m1 < m2)
print(m2 < m1)
print(m2 > m1)

# print(len(m))


# print('abcaa' < 'abc')
